package com.uinnova.springboot.mongodb.dao.impl;
import com.uinnova.springboot.mongodb.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Repository;

/*
*@author 王刚
*@date 2019-01-05 16:17
*@Repository 数据访问组件
*/
@Repository
public class UserMongoImpl {

 @Autowired
    private MongoTemplate mongoTemplate;

   /*
   *增加用户
   */
    public void saveUser(User user){
        mongoTemplate.save(user);
    }

  /*
  *删除用户
  */
    public void deleteUserById(String id){
//        Query query = new Query(Criteria.where("id").is(id));
//        mongoTemplate.remove(query,User.class);
        mongoTemplate.remove(Query.query(Criteria.where("id").is(id)),User.class);
    }

  /*
  *修改用户信息
  */
    public void updateUser(User user){
       Update update  = new Update();
       update.set("name",user.getName());
       update.set("age",user.getAge());
       mongoTemplate.updateFirst(Query.query(Criteria.where("id").is(user.getId())),update,User.class);
    }

/*
*查询用户信息
*/
    public User findUserByName(String name){
        return mongoTemplate.findOne(Query.query(Criteria.where("name").is(name)),User.class);
    }

}
